/*
  --- 路由配置 ---
  https://blog.csdn.net/huangjianfeng21/article/details/95775421

  RouteConfigs支持三个参数screen、path以及navigationOptions；

  screen(必选)：指定一个 React 组件作为屏幕的主要显示内容，当这个组件被createStackNavigator加载时，它会被分配一个navigation prop。
  path(可选)：用来设置支持schema跳转时使用
  navigationOptions(可选)：
      title: 可以作为headerTitle的备选字段(当没设置headerTitle时会用该字段作为标题)，也可以作为TabNavigator的tabBarLabel以及DrawerNavigator的drawerLabel。
      header: 自定义导航条，可以通过设置null来隐藏导航条；
      headerTitle: 标题；
      headerTitleAllowFontScaling: 标题是否允许缩放，默认true；
      headerBackTitle: 定义在iOS上当前页面进入到下一页面的回退标题，可以通过设置null来禁用它；
      headerTruncatedBackTitle: 当回退标题不能显示的时候显示此属性的标题，比如回退标题太长了；
      headerBackImage：React 元素或组件在标题的后退按钮中显示自定义图片。 当组件被调用时，它会在渲染时收到许多 props 如：（tintColor，title）。 默认为带有 react-navigation/views/assets/back-icon.png 这张图片的组件，后者是平台的默认后图标图像（iOS上为向左的符号，Android上为箭头）。
      headerRight: 定义导航栏右边视图；
      headerLeft: 定义导航栏左边视图；
      headerStyle: 定义导航栏的样式，比如背景色等；
      headerTitleStyle: 定义标题的样式；
      headerLeftContainerStyle：自定义 headerLeft 组件容器的样式，例如，增加 padding。
      headerRightContainerStyle：自定义 headerRight 组件容器的样式,，例如，增加 padding。
      headerTitleContainerStyle：自定义 headerTitle 组件容器的样式, 例如，增加 padding。
      headerBackTitleStyle: 定义返回标题的样式；
      headerPressColorAndroid：颜色为材料波纹 (Android >= 5.0)；
      headerTintColor: 定义导航条的tintColor，会覆盖headerTitleStyle中的颜色；
      headerTransparent：默认为 false。如果 true, 则标头将不会有背景, 除非您显式提供 headerStyle 或 headerBackground。
      headerBackground：与headerTransparent一起使用，以提供在标题后台呈现的组件。 例如，您可以使用模糊视图来创建半透明标题。
      gesturesEnabled: 定义是否能侧滑返回，iOS默认true，Android默认false；
      gestureResponseDistance: 定义滑动返回的有效距离，水平状态下默认：25，垂直状态默认135；
      gestureDirection: 设置关闭手势的方向。默认从左向右，可以设置从右到左的滑动操作。

*/
import {
  AppLaunch,
  HomeScreen,
  LoginScreen,
  FillInformationScreen,
  CreateWalletScreen,
  SelectInterestScreen,
  RoomScreen,
  CreateRoomScreen,
  UserInfoScreen,
  HecoScreen,
  SearchScreen,
  WalletScreen,
  ServiceScreen,
  EditUserInfoScreen,
  ReportScreen,
  Auction,
  SelectNTF,
  AuctionSet,
  Summary,
  CreateNFT,
  ItemList,
  PriceList,
  Accept,
  ConvertHT,
  PriceBid,
  Message,
  ImportNFT,
  SelectSellType,
  NftDetail,
  MyAuctions,
  ApplyClub,
  SwitchNetwork,
  MyClub,
  InviteFriend,
  UserFollowers,
  UserFollowings,
  UserInvites,
  AwardCenter,
  AwardRecords,
  Browser,
  NewWallet,
  Guide,
  PhoneCode,
} from '../containers/Containers';

// 首次启动导航栈
const AppLaunchConfig = {
  AppLaunch: {
    screen: AppLaunch,
    navigationOptions: {
      headerShown: false,
    },
  },
};

const HomeRouteConfig = {
  Home: {
    screen: HomeScreen,
    navigationOptions: {
      headerShown: false,
      title: '',
      headerStyle: {
        backgroundColor: '#FFCB26',
        shadowColor: 'transparent',
      },
    },
  },
  Room: {
    screen: RoomScreen,
    navigationOptions: {
      headerShown: false,
    },
    configureScene(route) {
      return Navigator.SceneConfigs.PushFromBottom;
    },
  },
  CreateRoom: {
    screen: CreateRoomScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  UserInfo: {
    screen: UserInfoScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Heco: {
    screen: HecoScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Search: {
    screen: SearchScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Wallet: {
    screen: WalletScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  CreateWalletPage: {
    screen: CreateWalletScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  EditUserInfo: {
    screen: EditUserInfoScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Report: {
    screen: ReportScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Auction: {
    screen: Auction,
    navigationOptions: {
      headerShown: false,
    },
  },
  SelectNTF: {
    screen: SelectNTF,
    navigationOptions: {
      headerShown: false,
    },
  },
  AuctionSet: {
    screen: AuctionSet,
    navigationOptions: {
      headerShown: false,
    },
  },
  Summary: {
    screen: Summary,
    navigationOptions: {
      headerShown: false,
    },
  },
  CreateNFT: {
    screen: CreateNFT,
    navigationOptions: {
      headerShown: false,
    },
  },
  ItemList: {
    screen: ItemList,
    navigationOptions: {
      headerShown: false,
    },
  },
  PriceList: {
    screen: PriceList,
    navigationOptions: {
      headerShown: false,
    },
  },
  Accept: {
    screen: Accept,
    navigationOptions: {
      headerShown: false,
    },
  },
  ConvertHT: {
    screen: ConvertHT,
    navigationOptions: {
      headerShown: false,
    },
  },
  PriceBid: {
    screen: PriceBid,
    navigationOptions: {
      headerShown: false,
    },
  },
  Message: {
    screen: Message,
    navigationOptions: {
      headerShown: false,
    },
  },
  ImportNFT: {
    screen: ImportNFT,
    navigationOptions: {
      headerShown: false,
    },
  },
  SelectSellType: {
    screen: SelectSellType,
    navigationOptions: {
      headerShown: false,
    },
  },
  NftDetail: {
    screen: NftDetail,
    navigationOptions: {
      headerShown: false,
    },
  },
  MyAuctions: {
    screen: MyAuctions,
    navigationOptions: {
      headerShown: false,
    },
  },
  ApplyClub: {
    screen: ApplyClub,
    navigationOptions: {
      headerShown: false,
    },
  },
  SwitchNetwork: {
    screen: SwitchNetwork,
    navigationOptions: {
      headerShown: false,
    },
  },
  MyClub: {
    screen: MyClub,
    navigationOptions: {
      headerShown: false,
    },
  },
  InviteFriend: {
    screen: InviteFriend,
    navigationOptions: {
      headerShown: false,
    },
  },
  UserFollowers: {
    screen: UserFollowers,
    navigationOptions: {
      headerShown: false,
    },
  },
  UserFollowings: {
    screen: UserFollowings,
    navigationOptions: {
      headerShown: false,
    },
  },
  UserInvites: {
    screen: UserInvites,
    navigationOptions: {
      headerShown: false,
    },
  },
  AwardCenter: {
    screen: AwardCenter,
    navigationOptions: {
      headerShown: false,
    },
  },
  AwardRecords: {
    screen: AwardRecords,
    navigationOptions: {
      headerShown: false,
    },
  },
  Browser: {
    screen: Browser,
    navigationOptions: {
      headerShown: false,
    },
  },
  NewWallet: {
    screen: NewWallet,
    navigationOptions: {
      headerShown: false,
      gesturesEnabled: false,
    },
  },
  BrowserGuide: {
    screen: Guide,
    navigationOptions: {
      headerShown: false,
    },
  },
};

const LoginRouteConfig = {
  Login: {
    screen: LoginScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  FillInformation: {
    screen: FillInformationScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  CreateWallet: {
    screen: CreateWalletScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  SelectInterest: {
    screen: SelectInterestScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  Service: {
    screen: ServiceScreen,
    navigationOptions: {
      headerShown: false,
    },
  },
  PhoneCode: {
    screen: PhoneCode,
    navigationOptions: {
      headerShown: false,
    },
  },
};

export {AppLaunchConfig, HomeRouteConfig, LoginRouteConfig};
